package com.neusoft.ch7.singletone;

public class Singletone3 {

	// 属性
	// 按业务需求扩展即可
	
	// (1) 声明一个单件类类型静态变量（静态属性）
	private static Singletone3 mySingletone;
	// (2) 将构造方法私有化（用private修饰）【目的：外部类无法通过new创建该类的实例对象】

	// 通过静态语句块初始化静态常量
	static {
		mySingletone = new  Singletone3();
	}	
	
	private Singletone3() {
	}

	// (3) 提供一个静态方法，用于获取该单件模式类的实例对象

	/**
	 * 获取单件模式类的唯一的一个实例对象
	 * 
	 * @return 单件模式类的实例对象
	 */
	public static Singletone3 getInstance() {
		// 如果当前的静态变量mySingletone还没有初始化赋值，则进行初始化赋值处理，
		// 后面如果再有调用，则直接返回已经初始化的值即可
		// 判定是否初始化赋值，如果没有初始化，则进行初始化赋值
//		if (mySingletone == null) {
//			// 第一次进行初始化赋值
//			mySingletone = new Singletone3();
//		}

		return mySingletone;
	}

	// 行为
	// 按业务需求扩展即可
	public void printMe() {
		System.out.println("单件模式类的行为。。。");
	}
}
